package com.wy.interrupt_demo;

import java.util.Scanner;
import java.util.concurrent.TimeUnit;

/**
 * @author 美女
 * @date 2022/04/21 17:13
 **/
public class Main {
    static class B extends Thread{
        public void run(){
            while(true){
                for (int i = 0; i < 1000; i++) {
                    System.out.println("我正在写代码");
                }
                //每写1000行，休息1s
                //休息之前，检查有没有人让我们停止【B在非休眠状态】
                if(Thread.interrupted()){
                    //有人让我们停止
                    break;
                }
                try {
                    TimeUnit.SECONDS.sleep(1);
                } catch (InterruptedException e) {
                   //休息期间，有人让我们停止
                    break;//跳出while循环cw
                }
                //休息之后，检查有没有人让我们停止【B在非休眠状态】
                if(Thread.interrupted()){
                    //有人让我们停止
                    break;
                }
            }
            System.out.println("B停下来了");
        }
    }

    public static void main(String[] args) {
        B b=new B();
        b.start();
        //让B停止工作
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入任意字符，停止B的工作");
        scanner.nextLine();//主线程会阻塞到这里，直到用户输入内容
        b.interrupt();//让B停止-只是给B一个提醒
    }
}
